//Wrapper for EE::Obj
#pragma once
#include "stdafx.h"

namespace EsenthelNet
{
	public ref class Obj {
	internal:
		Obj(EE::Game::Obj* o) {
			obj = o;
		}

		EE::Game::Obj* obj;
	public:
		Obj() {
			obj = NULL;
			//obj = new EE::Game::Obj();
		}
		~Obj() { if(obj != NULL) delete obj; }

		virtual void Create(EsenthelNet::ObjParams^ params) { }

		property EsenthelNet::Vec^ Pos{ virtual EsenthelNet::Vec^ get() { return nullptr; } virtual void set(EsenthelNet::Vec^ vec) {} };
		property EsenthelNet::Matrix^ Matrix{ virtual EsenthelNet::Matrix^ get() { return nullptr; } virtual void set(EsenthelNet::Matrix^ mat){} };

		virtual bool Update() { return true; }

		virtual unsigned int DrawPrepare() { return 0; }
		virtual void Disable() { obj->disable(); }
		virtual void Enable() { obj->enable(); }
	};
}
